package com.dys.floattype;

/**
 * @className: com.dys.floattype.FloatingPointType
 * @description: 浮点类型的练习：十进制数形式和科学计数法形式
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/06/12 下午8:20
 */
public class FloatingPointType {

    public static void main(String[] args) {
        floatTypeVar();
    }

    /**
     * 浮点类型常量的两种类型表示形式：
     * 1.十进制
     * 2.科学计数法
     */
    public static void decimalAndScientific() {
        // 十进制表示形式
        double dNum1 = 3.14;
        System.out.println("十进制形式：dNum1 = " + dNum1);
        // 科学计数法表示形式
        double dNum2 = 314E-2;
        System.out.println("科学计数法形式： dNum2 = " + dNum2);
    }

    /**
     * 浮点型变量
     */
    public static void floatTypeVar() {
        // 小数在编译器中默认是double类型，若想将一个double类型的变量赋值给float，则必须在后面加上f or F
        float fNum1 = 3.14159265789f; // 精度只保留7位左右,会丢失精度
        System.out.println("float类型变量：fNum1 = " + fNum1);
        // double类型后面一遍家d or D，但是我们通常省略不写
        double dNum1 = 3.14159265789d;
        System.out.println("double类型变量：dNum1 = " + dNum1);

        /*
         * 区别：
         * 1. = 赋值运算：  将等号右侧的值赋给等号左侧
         * 2. == 判断==左右两侧的值是否相等  ：结果要么相等 要么不相等
         * 3. == 运算符的结果就是要么是true，要么是false
         * */
        float fNum2 = 3.14f;
        double dNum2 = 3.14d;
        System.out.println("浮点类型的比较结果：" + (fNum2 == dNum2));
    }
}
